Mobile devices such as phones and tablets are becoming the computing device of choice for users. Typically these mobile devices execute a variety of applications. Many of these applications are sophisticated and make demands on the host device's resources. One such resource is the energy in the mobile device battery, which unlike its personal computer counterpart, is often limited.
Previously, energy management in mobile devices has focused on energy savings at the lowest level of the mobile device (e.g., the radio or processor). However, these efforts provide only limited help to application developers in making their applications more energy efficient, or to users who may wish to avoid energy-hungry applications.
Estimating the energy usage of an application by executing it in isolation and measuring its energy usage does not work well. For example, the amount of energy a particular application uses may vary due to user settings such as how often the application is configured to check for updates, or the size of a user's contacts file. Therefore, determining the typical expected energy usage of an application may be difficult in isolation.